/*
============================================================================
 Name        : FlashBoxServerSession.h
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : CFlashBoxServerSession declaration
============================================================================
*/

#ifndef __FLASHBOXSERVERSESSION_H__
#define __FLASHBOXSERVERSESSION_H__

// INCLUDES
#include <e32std.h>
#include <e32base.h>
//#include "clientservercommon.h"

// DATA TYPES
// Opcodes used in message passing between client and server
enum TFlashBoxServRqst
{
   	EFlashBoxServQuerySetting = 1,
	EFlashBoxServSetSetting,
	EFlashBoxLoaderExit
};

// CONSTANTS
// Number of message slots to reserve for this client server session.
// Since we only communicate synchronously here, we never have any
// outstanding asynchronous requests.
static const TUint KDefaultMessageSlots = 0;

// Server UID
const TUid KServerUid3 = { 0x2000D254 };

_LIT( KFlashBoxServerFilename, "FbService_0x2000D254.exe" );

const TUint KFlashBoxMajorVersionNumber=0;
const TUint KFlashBoxMinorVersionNumber=1;
const TUint KFlashBoxBuildVersionNumber=1;

#ifdef __WINS__
static const TUint KServerMinHeapSize =  0x1000;  //  4K
static const TUint KServerMaxHeapSize = 0x10000;  // 64K
#endif


/**
*  CFlashBoxServerSession
* 
*/
class RFlashBoxServerSession : public RSessionBase
{
public: // Constructors and destructor

	/**
    * Constructor for performing 1st stage construction
    */
	RFlashBoxServerSession();

public: // New functions
    /**
    * Connect.
    * Connects to the server and create a session.
    * @return Error code.
    */
    TInt Connect();

    /**
    * Version.
    * Gets the version number.
    * @return The version.
    */
    TVersion Version() const;

    /**
    * RequestSetting.
    * Issues a request to the server.
    * @param aBool The location for the server to write data into.
    */
    void RequestSetting( const TFlashBoxServRqst &aRqst, TUint8& aStatus ) const;

};

#endif // FLASHBOXSERVERSESSION_H
